#ifndef _N2F_GEOMETRY_H_
#define _N2F_GEOMETRY_H_

#include "IwGx.h"
#include "IwGxFont.h"

#include "s3ePointer.h"
#include "s3eKeyboard.h"
#include "s3eutils.h"

namespace N2F
{
	namespace Iw3D
	{
		/*class Vector2D
		{
		public:
			float x, y;

			static Vector2D g_Identity;
			static Vector2D g_AxisX;
			static Vector2D g_AxisY;

			Vector2D();
			Vector2D(float x, float y);
			explicit Vector2D(const Vector2D &v);
			VALUE_IN_REGS Vector2D operator = (const Vector2D &v);

			float GetLength() const;
			INLINE_MEMBER float GetLengthSquared() const; // return (x * x + y * y);

			void Normalize();
			Vector2D GetNormalized() const;
			bool IsNormalized() const;

			bool IsZero() const;

			INLINE_MEMBER float Dot(const Vector2D &v) const; // return *this * v;

			// TODO: Finish at some point, so we can start making this more agnostic
		};

		class Vector3D
		{
		};*/

		class Rectangle
		{
		public:
			Rectangle();
			Rectangle(CIwFVec2 topleft, CIwFVec2 size);
			~Rectangle();

			bool intersectedBy(CIwFVec2 pos);
			bool intersectedBy(CIwFVec2 pos, CIwFVec2 offset, float scale);

			void move(float x, float y);
			void move (CIwFVec2 move);

			CIwRect32 getCIwRect32();

		protected:
			CIwFVec2 tl, tr, br, bl, size;
		};
	}
}

#endif
